#ifndef RPC_MPRPC_CONFIG_H
#define RPC_MPRPC_CONFIG_H

#include <unordered_map>
#include <string>

namespace rpc {

/**
 * @brief RPC框架配置类，负责解析配置文件
 */
class MprpcConfig {
public:
    /**
     * @brief 加载并解析配置文件
     * @param config_file 配置文件路径（如"conf/rpc.conf"）
     */
    void LoadConfig(const std::string& config_file);

    /**
     * @brief 获取配置项的值
     * @param key 配置项键（如"rpc_server_port"）
     * @return 配置项值，若不存在返回空字符串
     */
    std::string Load(const std::string& key);

private:
    /**
     * @brief 去除字符串前后空格和控制字符（如\r）
     */
    void Trim(std::string& str);

private:
    std::unordered_map<std::string, std::string> m_config_map;  // 存储配置项（键值对）
};

}  // namespace rpc

#endif  // RPC_MPRPC_CONFIG_H